package com.smedi.ismedi.inmail.api.feign;

import com.smedi.ismedi.inmail.api.dto.request.LoginLogOrgStaticsExportRequest;
import com.smedi.ismedi.inmail.api.dto.request.LoginLogOrgStaticsPageRequest;
import com.smedi.ismedi.inmail.api.dto.request.LoginLogUserStaticsExportRequest;
import com.smedi.ismedi.inmail.api.dto.request.LoginLogUserStaticsPageRequest;
import com.smedi.ismedi.inmail.api.dto.response.LoginLogOrgStaticsResponse;
import com.smedi.ismedi.inmail.api.dto.response.LoginLogUserStaticsResponse;
import com.smedi.ismedi.web.starter.common.PaginationData;
import com.smedi.ismedi.web.starter.common.ResponseData;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author u
 */
@FeignClient(name = "ismedi-inmail" )
@Api(value = "登录统计-主体院" , tags = {"登录统计-主体院"})
@RequestMapping(value = "/api/v1/login-log-org-statics" )
public interface RemoteLoginLogOrgStaticsFeignApi {

    /**
     * 登录统计 分页 （主体院维度）
     *
     * @return ResponseData<Boolean>
     */
    @ApiOperation(httpMethod = "POST" , value = "登录统计 分页 （主体院维度）" )
    @PostMapping(value = "/page" )
    ResponseData<PaginationData<LoginLogOrgStaticsResponse>> page(@Validated @RequestBody LoginLogOrgStaticsPageRequest loginLogOrgStaticsPageRequest);

    /**
     * 统计（前天到昨天累加至表中）
     *
     * @return ResponseData<Boolean>
     */
    @ApiOperation(httpMethod = "POST" , value = "统计（前天到昨天累加至表中）" )
    @PostMapping(value = "/statics" )
    ResponseData<Boolean> statics();
    
    /**
     * 导出
     *
     * @return ResponseData<Boolean>
     */
    @ApiOperation(httpMethod = "POST" , value = "导出" )
    @PostMapping(value = "/export" )
    ResponseData<String> export(@Validated @RequestBody LoginLogOrgStaticsExportRequest loginLogOrgStaticsExportRequest);
}
